package navalgo3.Modelo;

import java.awt.Image;
import java.util.ArrayList;
import java.util.Random;

import javax.swing.ImageIcon;

public class Lancha extends Nave {
	
	Image imagenMar = new ImageIcon(getClass().getResource("mar.jpg")).getImage();
	Image imagenLancha = new ImageIcon(getClass().getResource("lanchafinal.jpg")).getImage();
	
	
	public Lancha(ArrayList<Posicion> posicionInicialLancha, Rumbo rumboInicial) {
		super(posicionInicialLancha, rumboInicial);
		this.superficie= new SuperficieTradicional(posicionInicialLancha);
	}
	
	public Lancha(){
		ArrayList<Posicion> posicionInicial= new ArrayList<Posicion>();
		Posicion posicionDeInicio = this.crearPosicionInicio(direccion);
		posicionInicial = new CreadoraDeNaves().crearNaveSegunRumboPosicionYDireccion(rumbo, direccion, posicionDeInicio);
		posicionInicial.remove(posicionInicial.size()-1);
		posicionInicial.remove(posicionInicial.size()-1);
		posicionInicial.remove(posicionInicial.size()-1);
		this.superficie= new SuperficieTradicional(posicionInicial);
	}

	private Posicion crearPosicionInicio(int direccion) {
		Posicion posicionDeInicio = new Posicion();
		boolean posicionValida = false;
		while (!posicionValida){
			posicionDeInicio = new Posicion();
			if (this.validarPosicionDeInicio(posicionDeInicio, direccion)){
				posicionValida = true;
			}
		}
		return posicionDeInicio;
	}
	
	private boolean validarPosicionDeInicio(Posicion posicionDeInicio,int direccion) {
		if (direccion==1){
			return ((posicionDeInicio.posicionEste().posicionValida())&&
					(posicionDeInicio.posicionOeste().posicionValida()));
		}
		else {
			return ((posicionDeInicio.posicionNorte().posicionValida())&&
					(posicionDeInicio.posicionSur().posicionValida()));
		}
	}
	
	public Image dameTuImagen(Posicion posicionActual){
		return imagenLancha;
	}
}